package com.kingoe.proxydj.proxystatic.dao;

import lombok.extern.slf4j.Slf4j;

/**
 * 代理逻辑在代理类中，而不是由用户自定义
 * @author jinwu
 */
@Slf4j
public class ProxyUserDao implements UserDao {

    // 被代理对象
    private UserDao target;

    public ProxyUserDao(UserDao target) {
        this.target = target;
    }


    /**
     * 前置/后置 处理一旦写完，就固定死了，后续想修改的话需要改此代理类
     */
    @Override
    public void delete() {
        // 前置处理，例如开启事务
        log.info("前置处理...");

        // 调用目标对象方法
        target.delete();

        // 后置处理，例如提交事务或事务回滚
        log.info("前置处理...");
    }
}
